<?php
class PublicAction extends Action{
	
	public function login(){
		//先推出。
		service('Passport')->logoutLocalPartner();
		$this->display();
	}
	
	/**
	 * 商户登录。
	 * 分为管理员/验证员。
	 * 管理员登录必须录入密码。
	 * 验证员密码不是必须项。需通过数据库中对应验证员密码字段是否为空来判断是否验证密码。
	 */
	public function dologin(){
		//检查验证码
		if (md5($_POST['verify'])!=$_SESSION['verify'])	$this->error('验证码错误');
		
		//获取请求参数
		$pid =	t($_POST['pid']);
		$password =	t($_POST['password']);
		$role =	t($_POST['role']);
		
		//验证是否选择商户
		if(empty($pid)){
			$this->error('请选择选择店铺！');
		}
		
		//验证登录角色
		if(!in_array($role,array('admin','checker'))){
			$this->error('请选择登录角色（管理员或验证员）');
		}
		
		//验证总店不能以验证员身份登陆
		if(in_array($role,array('checker'))){
			$partner = D('Partner','Admin')->selectById($pid);
			if(empty($partner)){
				$this->error('请选择选择店铺！');
			}else{
				if($partner['parent_id']==0){
					$this->error('总店不能以验证员身份登陆！');
				}
			}
		}
		//管理员验证密码是否录入
		if($role=='admin'&&empty($password))$this->error('请输入密码');
		
		//调用验证服务，验证用户。
		$partner  =	service('Passport')->loginPartner($pid,$role, $password);
		
		if($partner) {
			$this->setSessionAndCookie($partner['id'], $role ,$partner['title'],$partner['parent_id'], intval($_POST['remember']) === 1);
			//跳转至登录前输入的url
			/** 暂时不作跳转处理。
			if ( $_SESSION['refer_url'] != '' ) {
				$refer_url	=	$_SESSION['refer_url'];
				unset($_SESSION['refer_url']);
			}else {
				
			}
			**/
			$refer_url = U('shanghu://Index/index');
			if($role=='checker')$refer_url = U('shanghu://Check/index');
			exit(json_encode(array('status'=>'1','msg'=>'登录成功','data'=>array( 'refer_url'=>$refer_url ) )));
		}else {
			exit(json_encode(array('status'=>'0','msg'=>'登录失败')));
		}
	}
	
	public function logout(){
		service('Passport')->logoutLocalPartner();
		$this->redirect('shanghu://Index/index');
	}
	
	//成功登录后，设置Session和Cookie
	public function setSessionAndCookie($pid, $role , $title ,$parent_id, $remember = false) {
		PassportService::setSessionAndCookie4SH($pid, $role , $title ,$parent_id, $remember);
	}
	
	public function ajxshinfo(){
		$pdesc		 = t($_REQUEST['pdesc']);
		//$porppid		 = t($_REQUEST['porppid']);//pid或者partner_id，及查询总店和分店信息
		if(empty($pdesc))exit(json_encode(array('status'=>'1','data'=>'')));
		$this->_ajxshinfo($pdesc,$porppid);
		exit;
	}
	
	public function ajxshporpp(){
		$porppid		 = t($_REQUEST['porppid']);//pid或者partner_id，及查询总店和分店信息
		if(empty($porppid))exit(json_encode(array('status'=>'1','data'=>'')));
		$this->_ajxshinfo($pdesc,$porppid);
		exit;
	}
	
	private function _ajxshinfo($pdesc,$porppid){
		$map['title'] = array('like','%'.$pdesc.'%');
		$map['porppid'] = $porppid;
		
		//登陆成功后，判断是否查询根数据。
		if($_SESSION['qp_is_root']=='yes'){
			$map['noroot']='yes';
		}
		$result=D('Partner','Admin')->selectPartnerInfo($map,"id,title,parent_id",' parent_id asc , id ');
		exit(json_encode(array('status'=>'1','data'=>$result)));
	}
	
	
	public function ajxgoods(){
				$searchtext = $_REQUEST['searchtext'];
				$partner_id = $_REQUEST['partner_id'];
				
				$map = ' 1=1 ';
				if(!empty($partner_id)){
						$map=$map." and partner_id=".$partner_id;
				}
				if(!empty($searchtext)){
						$map=$map." and title like '%".$searchtext."%' ";
				}
				$listpartner = D('Goods','Admin')->selectAllByPage($map,100);
				exit(json_encode($listpartner['data'])); 
	}
	
}

?>